package com.example.day04.homework;

import java.util.Arrays;

public class MyArrayList<E> {

    private int size;//有效长度

    private Object[] data; // 数组,保存数据

    //添加一个元素
    public void add(Integer e){
        if(data==null){
            data=new Object[0];
            size=0;
        }
      data=Arrays.copyOf(data,10);

        if(size>=data.length-1){
            Object[]  t=new Object[data.length*2];
            System.arraycopy(data, 0, t, 0, data.length);
            data=t;

        }
        data[size++]=e;
//        for(int i=0;i<size;i++){
//            System.out.println(data[i]);
//        }

    }

    //根据下标删除
    public void remove(int index){
            if(data==null){
                System.out.println("没有数据无法删除");
            }
            Object [] arr=new Object[size];
            int count =0;
            for(int i=0;i<size;i++){
                if(i==index){
                    continue;
                }
                arr[count++]=data[i];

            }
             data=arr;
//            for(int i=0;i<count;i++){
//                System.out.println(data[i]);
//            }

    }

    //根据元素删除 - 只能删除数组中第一次出现的
    public void remove(E e){
            int count=0;
        Object [] arr=new Object[size];
        int a=0;

        for(int i=0;i<size;i++){
            if(data[i]!=e){
                count++;//a=i
            }else {
                break;
            }
        }
        System.arraycopy(data,0,arr,0,count);
        System.arraycopy(arr,count+1,arr,count,size-count-1);

        data=arr;
        for(int i=0;i< data.length;i++){
            System.out.println(data[i]);
        }
    }
}

class  testArray{
    public static void main(String[] args) {
        Integer i=1;
        Integer j=1;
        Integer k=1;
        Integer l=1;
         int b=2;
         MyArrayList<?> myArrayList=new MyArrayList<>();
         myArrayList.add(i);
         myArrayList.add(j);
        myArrayList.add(l);
        myArrayList.add(k);

        myArrayList.remove(i);



    }
}


